/**
 * 格式化时间戳
 * @param timestamp
 * @returns {string}
 */
function formatDate(timestamp){
    var date = new Date(timestamp * 1000);
    var Y = date.getFullYear() + '-';
    var M = zeroFill(date.getMonth()+1) + '-';
    var D = zeroFill(date.getDate()) + ' ';
    var h = zeroFill(date.getHours()) + ':';
    var m = zeroFill(date.getMinutes()) + ':';
    var s = zeroFill(date.getSeconds());
    return Y+M+D+h+m+s;
}

/**
 * 格式化时间补0
 * @param i
 * @returns {*}
 */
function zeroFill(i) {
    if (i >= 0 && i <= 9) {
        return "0" + i;
    } else {
        return i;
    }
}

/**
 * 软删除
 * @param _this
 * @param index
 * @param list
 * @param url
 */
function del(_this, index, list, url) {
    let row = list[index];

    _this.$confirm('确认删除吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
    }).then(() => {
        $.ajax({
            url: url,
            type: 'post',
            data: {
                id: row.id
            },
            beforeSend: function(){
                _this.loading = true;
            },
            success: function (res) {
                if (res.code !== 0) {
                    _this.$message.error(res.msg);
                }
                setTimeout(() => {
                    list.splice(index, 1);
                    _this.loading = false;
                    _this.$message.success('已删除!');
                }, 200 * Math.random());
            },
            error: function () {
                _this.loading = false;
            }
        });
    }).catch(() => {
        _this.$message.info('已取消!');
    });
}

/**
 * 改状态
 * @param _this
 * @param index
 * @param list
 * @param url
 * @param val
 */
function status(_this, index, list, url, val) {
    let row = list[index];
    let msg = val === 1 ? '已启用!' : '已禁用!';
    let type = val === 1 ? 'success' : 'warning';

    $.ajax({
        url: url,
        type: 'post',
        data: {
            id: row.id,
            status: val,
        },
        beforeSend: function(){
            _this.loading = true;
        },
        success: function (res) {
            if (res.code !== 0) {
                _this.$message.error(res.msg);
            }
            setTimeout(() => {
                list[index]['status'] = val;
                _this.loading = false;
                _this.$message({
                    type: type,
                    message: msg
                });
            }, 200 * Math.random());
        },
        error: function () {
            _this.loading = false;
        }
    });
}

/**
 * 打开窗口权限验证
 * @param msg
 * @param rote
 * @param w
 * @param h
 */
function show(msg, rote, w='', h='') {
    $.ajax({
        type: 'post',
        url: '/admin/auth/jumpCheck',
        data: {rule: rote},
        success:function(data){
            if(data.code === -2) {
                layer.msg(data.msg, { icon:5, time:3000 }, function () {
                    location.href = "<?php echo url('login/login')?>";
                });
            } else if(data.code !== 0){
                layer.msg(data.msg,{ icon:5, time:2000 });
            }  else {
                layer_show(msg, rote, w, h);
            }
        }
    });
}

/**
 * 窗口打开页面
 * @param title
 * @param url
 * @param w
 * @param h
 */
function layer_show(title,url,w=60,h=50) {
    layer.open({
        type: 2,
        area: [w+'%',h+'%'],
        fix: false, //不固定
        maxmin: true,
        shade:0.4,
        title: title,
        content: url
    });
}

/**
 * 自动上传
 * @param url  上传地址
 * @param fid  上传文件id
 * @param img_id  image id,并且作为文件目录文件夹
 * @returns {boolean}
 */
function ajaxFileUpload(url, fid, img_id) {
    $.ajaxFileUpload({
        url: url, //用于文件上传的服务器端请求地址
        type: 'post',
        secureuri: false, //是否需要安全协议，一般设置为false
        fileElementId: fid, //文件上传域的ID
        dataType: 'json', //返回值类型 一般设置为json
        async : true,   //是否是异步
        data: {file_name: img_id},  //携带参数
        success: function (data) {  //服务器成功响应处理函数
            if (data.code !== 0) {
                layer.msg(data.msg,{ icon:5, time:2000 });
            } else {
                layer.msg('上传成功！',{ icon:1, time:1000 });
                $('#'+img_id).attr('src',data.data.path);
            }
        },
        error: function (data, status, e) {  //服务器响应失败处理函数
            layer.msg('上传失败，服务器未响应！',{ icon:5, time:2000 });
        }
    });
    return false;
}